unit AcaoGrid;

interface
uses
  Acao;

type
  TTipoAcaoGrid = (tagCima, tagDireita, tagBaixo, tagEsquerda, tagFicar);

  TAcaoGrid = class (TAcao)
    private
      FTipo : TTipoAcaoGrid;

    public
      constructor Create; overload;
      constructor Create (IxTipo : Integer); overload;

      class function NumeroDeAcoes : Integer;

      property Tipo : TTipoAcaoGrid read FTipo write FTipo;
    
  end;

implementation

{ TAcaoGrid }

constructor TAcaoGrid.Create;
begin
  FTipo := TTipoAcaoGrid(Random(NumeroDeAcoes));
end;

constructor TAcaoGrid.Create(IxTipo: Integer);
begin
  FTipo := TTipoAcaoGrid(IxTipo);
end;

class function TAcaoGrid.NumeroDeAcoes: Integer;
begin
  Result := Integer (High(TTipoAcaoGrid)) + 1;
end;

end.
